SYS(...)

Form

Dieser Befehl liefert beim Drucken die Anzahl Exemplare (Hauptdokument und Subdokument).
Mit «SYS(CHAIN <prg>)» können alle Applikationspool Programme innerhalb eines F-Script ausgeführt werden. Informationen zu den verfügbaren Programmen finden Sie in den TechNotes.
Mit diesem Befehl kann eine Datei kopiert werden. Wird auf Indikator abgefragt, kann geprüft werden, ob das Kopieren erfolgreich war oder nicht.
Mit diesem Befehl kann ein Verzeichnis erstellt werden. Wird auf Indikator abgefragt, kann geprüft werden, ob das Erstellen erfolgreich war oder nicht.
Entschlüsselt den String und liefert den Klartext zurück.
Symmetrische Verschlüsselung mit einem Shared-Secret.
Entschlüsselt den String mit Hilfe des Shared-Secret und liefert den Klartext zurück.
Mit diesem Befehl kann ein bestimmtes Verzeichnis gelöscht werden.
Innerhalb eines F-Script kann mit diesem Befehl geprüft werden, ob ein Dialog angezeigt werden kann oder nicht.
  • «zSYS(DIALOG)\I» - F-Script Dialog ist möglich.
  • «z~SYS(DIALOG)\I» - F-Script Dialog ist nicht möglich.
Verschlüsselt den Klartext und liefert den verschlüsselten String zurück.
Symmetrische Verschlüsselung mit einem Shared-Secret.
Verschlüsselt den Klartext mit Hilfe des Shared-Secret und liefert den verschlüsselten String zurück.
Mit diesem Befehl kann eine Datei gelöscht werden. Wird auf Indikator abgefragt, kann geprüft werden, ob das Löschen erfolgreich war oder nicht.
Mit diesem Befehl kann geprüft werden, ob ein bestimmtes Verzeichnis existiert.
Mit diesem Befehl kann die Existenz einer Datei geprüft werden. (Analog dem Betriebssystembefehl "IF EXIST". )
Dieser Befehl liefert den vollen Pfad auf die OpaccERP-Installation.
Beispiele:
O:\insyde\
\\SrvOO-DB\OpaccERP\insyde\
Mit diesem Befehl kann Benutzerberechtigung abgefragt werden: 0 keine, 1 nur lesen, 2 alles.
Umgebungsinformationen des Betriebssystems.
Erzeugen einer eindeutigen ID.
Achtung! Unter OpaccERP ohne Funktion.
Mit diesen Befehlen kann geprüft werden, welche Taste zuletzt gedrückt wurde.
Achtung! Unter OpaccERP ohne Funktion.
Mit diesem Befehl kann eine Auswertung abgebrochen werden. Sinnvolle Anwendung findet diese Abbruchmöglichkeit in Schleifen (REPEAT/LOOP).
Dieser Befehl liefert die Mitarbeiter Nr. des angemeldeten Benutzers.
Dieser Befehl liefert die Sprache des angemeldeten Benutzers.
Abfragen der Berechtigung: -1 Opacc Support, -2 Kunden System-Administrator, -3 Opacc Systemhaus
1-99 Benutzergruppe
Achtung! Der Befehl ist deprecated. Nicht mehr verwenden!
Verwenden Sie stattdessen den Befehl «SYS(LOGADRSPR)»
Dieser Befehl liefert die Systemsprache des angemeldeten Benutzers.
Benutzernummer
Administrator-Stufe
Impersonator
Dieser Befehl liefert die Mandanten Nr. anhand des aktiven Login zurück.
Mit diesem Befehl wird die momentan freie Speicherkapazität des Hauptspeichers in Bytes angezeigt.
Achtung! Unter OpaccERP nicht mehr von Bedeutung.
Aktives Programm. (Unter OpaccERP nicht mehr von Bedeutung.)
Mit diesem Befehl kann eine Datei verschoben werden. Wird auf Indikator abgefragt, kann geprüft werden, ob das Verschieben erfolgreich war oder nicht.
Mit diesen Befehlen kann zur Laufzeit das für das Drucken verwendete Device beeinflusst werden.
Dieser Befehl liefert den relativen Pfad ins F-Script-Verzeichnis. (..\FF)
Dieser Befehl liefert den Pfad ins Textverzeichnis gem. der Einstellung im OpaccOXAS Studio BC 98400.
Mit diesem Befehl kann eine Datei umbenannt werden. Wird auf Indikator abgefragt, kann geprüft werden, ob das Umbenennen erfolgreich war oder nicht.
Mit diesem Befehl kann ein externes Programm (ausserhalb von OpaccERP) gestartet werden. Nach Beenden des externen Programms, wird zum Ausgangspunkt innerhalb des F-Scripts zurückgekehrt.
Dieser Befehl liefert die aktuelle Systemzeit in Sekunden.
Dieser Befehl liefert die Eindeutige BIZ-Session-Nr. innerhalb eines BIZ-Prozesses.
Dieser Befehl liefert die BIZ-Session-Nr. innerhalb der ein F-Script gestartet wird.
Dieser Befehl liefert den aktuellen Scriptlevel zurück. Damit können Sie prüfen, auf welchem Level (Verschachtelung von Scripts/Subroutinen) sich das F-Script aktuell befindet.
Mit diesem Befehl wird die Script-Verarbeitung abgebrochen und das F-Script sofort verlassen.
Deser Befehl liefert die aktuelle Systemzeit in Stunden und Minuten.
Dieser Befehl liefert die "Private Bytes" des BIZ-Prozesses.
Achtung! Unter OpaccERP ohne Funktion.
Dieser Befehl liefert die Anzahl der angemeldeten Benutzer.
Mit diesem Befehl kann eine Verarbeitung für n-Sekunden unterbrochen werden. Oft wird diese Funktion genutzt, um innerhalb von Schleifen eine bestimmte Anzahl Sekunden zu warten, bevor die Schleife erneut durchlaufen wird.

SYS(ANZEXEMP)

Form

«SYS(ANZEXEMP)» 
Dieser Befehl liefert beim Drucken die Anzahl Exemplare (Hauptdokument und Subdokument).
Die Druckersteuerungen erlauben nur noch indirektes Drucken. Das F-Script läuft dadurch immer nur ein Mal und der erzeugte Output wird gemäss Anzahl Exemplare automatisch ein oder mehrere Male an den Drucker geschickt.
Hat das F-Script keinen direkten Output, (beispielsweise bei Etiketten welche mit einem Copy-Befehl innerhalb des F-Scripts auf den Drucker kopiert werden) führt das indirekte Drucken dazu, dass der Copy-Befehl im F-Script auch nur ein Mal ausgeführt wird. Damit nun der Copy-Befehl so oft ausgeführt werden kann wie der Anwender "Anzahl Exemplare" verlangt hat, muss diese "Anzahl Exemplare" im F-Script abgefragt werden können. Dafür steht der Befehl SYS(ANZEXEMP) zur Verfügung.

SYS(CHAIN <prg>)

Form

«SYS(CHAIN <prg>)» 

Typ

S (Funktion)
Mit «SYS(CHAIN <prg>)» können alle Applikationspool Programme innerhalb eines F-Script ausgeführt werden. Informationen zu den verfügbaren Programmen finden Sie in den TechNotes.

Beispiel

Neues Fakturajournal (Verkauf) erstellen mit F-Script:
# Setzen der Programm-Argumente
«CB(SETI:BEGIN)»
«CB(SETI: 0)»
«CB(SETI: 0)»
«CB(SETI:END)»
# Starten des Programms
«SYS(CHAIN IO5FAJO)»

# Rückgabewert abfragen
«CB(GETI:BEGIN)»
# Abfrage ob Verarbeitung OK.
# 0 = NOK (Kein neues Journal erstellt.)
# 1 = OK (Neues Journal erstellt.)
«nm1(«CB(GETI:OK)»)»
#
# Abfrage neue Fajo Nr. (leer, wenn kein neues Journal erstellt.)
«nm2(«CB(GETI:)»)»
«CB(GETI:END)»
#
OK-Wert: «MEM(1)»
Neue Journal Nr. «MEM(2)»
/ 
Das Programm IO5FAJO erstellt ein neues Verkaufs-Fakturajournal. Das Programm liefert zwei Rückgaben: OK-Rückgabe und Fakturajournal-Nr.

SYS(COPYFILE)

Form

«SYS(COPYFILE file1,file2)» 

Typ

S (Funktion)
Mit diesem Befehl kann eine Datei kopiert werden. Wird auf Indikator abgefragt, kann geprüft werden, ob das Kopieren erfolgreich war oder nicht.

Beispiel

# Kopieren einer Datei:
«z~SYS(COPYFILE «SYS(FULLPATH)»TX\LS001.txt,«SYS(FULLPATH)»TX\Backup\LS001.bkp)\I» Fehler beim Kopieren!
Notiz
Notiz
Beachten Sie, dass dieser Befehl nicht dazu geeignet ist, Dateien auf ein Device zu kopieren.
Sollten Sie (z.B. wenn Sie mit Etikettendruckern arbeiten) eine Datei auf ein Device kopieren müssen, empfehlen wir mit dem Befehl SYS(RUNI... zu arbeiten.
Beispiel
# Kopieren einer Datei auf ein Device:
«nz~SYS(RUNI CMD/c copy «SYS(FULLPATH)»TMP\myFile.txt \\printer.mydomain.ch\druckername)\I» Fehler beim Kopieren via CMD!

SYS(CREATEDIR)

Form

«SYS(CREATEDIR <Path>)» 

Typ

S (Funktion)
Mit diesem Befehl kann ein Verzeichnis erstellt werden. Wird auf Indikator abgefragt, kann geprüft werden, ob das Erstellen erfolgreich war oder nicht.

Beispiel

/
# Verzeichnis erstellen:
«z~SYS(CREATEDIR ..\tmp\out)\I» Fehler beim Erstellen des Verzeichnisses!
/ 

SYS(DECRYPT)

Form

«SYS(DECRYPT <String>)» 

Typ

S (Funktion)
Mit diesem Befehl kann ein verschlüsselter Passwort-String entschlüsselt werden.

Beispiel

/
# Entschlüsseln eines Passwort-String:
«SYS(DECRYPT 024V4+hDQ+WIylam5V8uHrr1w==lFd8mKOT2AAXHHuJNdH6yA==)»
/ 

SYS(DECRYPT_SYM)

Form

«SYS(DECRYPT_SYM <Secret>,<String>)» 

Typ

S (Funktion)
Symmetrische Verschlüsselung mit einem Shared-Secret.
Entschlüsselt den String mit Hilfe des Shared-Secret und liefert den Klartext zurück.

Beispiel

/
# Shared-Secret
«nX(secret=TOP-SECRET)»

# Entschlüsseln
«nX(decrypted=«SYS(DECRYPT_SYM «X(secret)»,«X(encryptedString)»)»)»
/

SYS(DELETEDIR)

Form

«SYS(DELETEDIR <Path>)» 

Typ

S (Funktion)
Mit diesem Befehl kann ein bestimmtes Verzeichnis gelöscht werden.
Notiz
Notiz
Beachten Sie, dass dieser Befehl keine rekursive Funktionalität bietet. Enthält das zu löschende Verzeichnis ein Unterverzeichnis oder eine Datei, wird es nicht gelöscht.

Beispiel

/
# Verzeichnis löschen:
«z~SYS(DELETEDIR ..\tmp\out)\I» Das Verzeichnis konnte nicht gelöscht werden!
/ 

SYS(DIALOG)

Form

«SYS(DIALOG)» 
Innerhalb eines F-Script kann mit diesem Befehl geprüft werden, ob ein Dialog angezeigt werden kann oder nicht. Damit kann in gemischten Umgebungen (Servermode, Clientmode) festgestellt werden, ob eine Dialoganzeige für den Anwender möglich ist, oder nicht.
«zSYS(DIALOG)\I» - F-Script Dialog ist möglich.
«z~SYS(DIALOG)\I» - F-Script Dialog ist nicht möglich.

SYS(ENCRYPT)

Form

«SYS(ENCRYPT <String>)» 

Typ

S (Funktion)
Mit diesem Befehl kann ein String (Klartext) verschlüsselt werden.

Beispiel

/
# Verschlüsseln eines Passwort-String:
«SYS(ENCRYPT KlartextPasswort)»
/ 

SYS(ENCRYPT_SYM)

Form

«SYS(ENCRYPT_SYM <Secret>,<String>)»

Typ

S (Funktion)
Symmetrische Verschlüsselung mit einem Shared-Secret.
Verschlüsselt den String (Klartext) mit Hilfe des Shared-Secret und liefert den verschlüsselten String zurück.

Beispiel

/
# Shared-Secret
«nX(secret=TOP-SECRET)»

# Zu verschlüsselnder Text
«nX(text= Dieser Text muss verschlüsselt werden.)»

# Verschlüsseln
«nX(encrypted=«SYS(ENCRYPT_SYM «X(secret)»,«X(text)»)»)»
/

SYS(ERASEFILE)

Form

«SYS(ERASEFILE file)» 

Typ

S (Funktion)
Mit diesem Befehl kann eine Datei gelöscht werden. Wird auf Indikator abgefragt, kann geprüft werden, ob das Löschen erfolgreich war oder nicht.

Beispiel

/
# Datei löschen:
«z~SYS(ERASEFILE «SYS(PATHTX)»LS001.BKP)\I» Fehler beim Löschen der Datei aus dem Textverzeichnis!
/ 

SYS(EXISTDIR)

Form

«SYS(EXISTDIR <Path>)» 

Typ

S (Funktion)
Mit diesem Befehl kann geprüft werden, ob ein bestimmtes Verzeichnis existiert.

Beispiel

/
# Verzeichnis prüfen:
«z~SYS(EXISTDIR ..\tmp\out)\I» Das Verzeichnis existiert nicht!
/ 

SYS(EXISTFILE)

Form

«SYS(EXISTFILE file)» 

Typ

S (Funktion)
Mit diesem Befehl kann die Existenz einer Datei geprüft werden. (Analog dem Betriebssystembefehl "IF EXIST". )

Beispiel

/
# Prüfen ob Datei existiert:
«z~SYS(EXISTFILE «SYS(PATHTX)»LS001.BKP)\I» Datei in Textverzeichnis nicht gefunden!
/ 

SYS(FULLPATH)

Form

«SYS(FULLPATH)» 
Dieser Befehl liefert den vollen Pfad auf die OpaccERP-Installation.
Beispiele:
O:\insyde\
\\SrvOO-DB\OpaccERP\insyde\

SYS(FULLPASS)

Form

«SYS(FULLPASS)»
Mit diesem Befehl kann Benutzerberechtigung abgefragt werden: 0 keine, 1 nur lesen, 2 alles.

SYS(GETENV <Variable>)

Mit diesem Befehl lassen sich Umgebungsinformationen des Betriebssystems anzeigen.
Wichtig
Wichtig
Wird im Servermode gearbeitet, werden mit diesem Befehl die Umgebungsinformationen des Servers angezeigt!

Form

«SYS(GETENV <Variable>)»
Als "Variable" können Sie im Prinzip alle Variablen angeben die der Konsolenbefehl "Set" zurückgibt.
Beispiele
Befehl
Resultat
«SYS(GETENV Computername)»
OCH-1552
«SYS(GETENV Username)»
Juditherni
«SYS(GETENV HomeDrive)»
C:
«SYS(GETENV Temp)»
C:\temp
«SYS(GETENV SystemDrive)»
C:
«SYS(GETENV SystemRoot)»
C:\Windows
«SYS(GETENV NUMBER_OF_PROCESSORS)»
8

SYS(GUID CREATE)

Dieser Befehl liefert eine eindeutige ID (als String) der folgenden Art: "ECE3AA77-A248-4D63-9A65-7D95B7D00CE3"

Form

«SYS(GUID CREATE)»
Notiz
Notiz
Jeder Aufruf von SYS(GUID CREATE) liefert eine andere eindeutige ID. Es besteht also keine Koppelung an eine Session o.ä.

SYS(KEY ...) - Achtung! Unter OpaccERP ohne Funktion.

Form

«SYS(KEY ENTER)»
«SYS(KEY ESC)»
«SYS(KEY F9)»
«SYS(KEY F4)»
«SYS(KEY F2)»
«SYS(KEY SF2)»
«SYS(KEY F5)»
«SYS(KEY PGUP)»
«SYS(KEY PGDN)»
«SYS(KEY UP)»
«SYS(KEY DN)» 
Mit diesen Befehlen kann geprüft werden, welche Taste zuletzt gedrückt wurde.

Typ

S (Funktion)

SYS(KEYPRESS) - Achtung! Unter OpaccERP ohne Funktion.

Form

«zSYS(KEYPRESS)\I» 

Typ

S (Funktion)
Mit diesem Befehl kann auf eine Tastatureingabe reagiert werden.

SYS(LOGADRNR)

Form

«SYS(LOGADRNR)»
Dieser Befehl liefert die Mitarbeiter Nr. des angemeldeten Benutzers.

SYS(LOGADRSPR)

Form

«SYS(LOGADRSPR)»
Dieser Befehl liefert die Sprache des angemeldeten Benutzers.

SYS(LOGPASSNR)

Form

«SYS(LOGPASSNR)»
Abfragen der Berechtigung: -1 Opacc Support, -2 Kunden System-Administrator, -3 Opacc Systemhaus.
1-99 Benutzergruppe

SYS(LOGSYSSPR) - Dieser Befehl ist deprecated und darf nicht mehr verwendet werden!

Form

«SYS(LOGSYSSPR)»
Dieser Befehl ist deprecated und darf nicht mehr verwendet werden. Verwenden Sie stattdessen den Befehl «SYS(LOGADRSPR)».
Notiz
Notiz
Der Befehl liefert einen Rückgabewert welcher sich aus der Beschriftungssprache minus 50 ergibt.
Beispiel: Die Beschrifungssprache (im Kontext des angemeldeten Users) ist 53. Der Befehl liefert als Rückgabewert 3 (53 - 50 = 3).

SYS(LOGUSERNR)

Form

«SYS(LOGUSERNR)»
Benutzernummer

SYS(LOGADMLEVEL)

Form

«SYS(LAGADMLEVEL)»
Administrator-Stufe

SYS(LOGIMPERSNR)

Form

«SYS(LOGIMPERSNR)»
Impersonator

SYS(MANDANT)

Form

«SYS(MANDANT)» 
Dieser Befehl liefert die Mandanten Nr. anhand des aktiven Login zurück. Man kann mit diesem Befehl also feststellen, in welchem Mandant das F-Script gerade läuft.

SYS(MEMORY)

Form

«SYS(MEMORY)» 

Typ

S (Funktion)
Mit diesem Befehl wird die momentan freie Speicherkapazität des Hauptspeichers in Bytes angezeigt.

Beispiel

# Ausgabe freier Speicher
Freier Speicher in Bytes: «SYS(MEMORY)»
/ 

Ausgabe:

Freier Speicher in Bytes: 189674
Die momentan im Hauptspeicher verfügbare Speicherkapazität beträgt 189'674 Bytes.

SYS(MENUNR) - Achtung! Unter OpaccERP nicht mehr von Bedeutung.

Form

«SYS(MENUNR)»

SYS(MOVEDIR)

Form

«SYS(MOVEDIR <Path>)» 

Typ

S (Funktion)
Mit diesem Befehl kann ein bestimmtes Verzeichnis verschoben werden.
Notiz
Notiz
Beachten Sie, dass dieser Befehl keine rekursive Funktionalität bietet. Enthält das zu verschiebende Verzeichnis ein Unterverzeichnis oder eine Datei, wird es nicht verschoben.

Beispiel

/
# Verzeichnis verschieben:
«nSYS(MOVEDIR ..\tmp\out ..\..\archiv\out)»
/ 

SYS(MOVEFILE)

Form

«SYS(MOVEFILE <OldFilePathAndName> <NewFilePathAndName>)» 
Notiz
Notiz
Alternative Variante falls einer der Pfade ein Space (Leerschlag) enthält:
«SYS(MOVEFILE <OldFilePathAndName>,<NewFilePathAndName>)» 
Beachten Sie, dass in diesem Fall nach dem Komma kein Space (Leerschlag) erlaubt ist!

Typ

S (Funktion)
Mit diesem Befehl kann eine Datei verschoben werden. Mit der Abfrage auf den Indikator kann geprüft werden, ob das Verschieben erfolgreich war oder nicht.

Beispiel

/
# Datei verschieben:
«z~SYS(MOVEFILE ..\tx\LS001.txt ..\tmp\out\LS001.bkp)\I» Fehler beim Verschieben!
/ 

«SYS(OUTNAME)» «SYS(OUTTYPE)» «SYS(OUTNAME=<Drucker- oder Dateiname>)»

SYS(OUTNAME)

Form

«SYS(OUTNAME)»
Dieser Befehl liefert den Drucker- oder Dateinamen. Im Falle von Preview ist die Rückgabe leer.

SYS(OUTTYPE)

Form

«SYS(OUTTYPE)»
Dieser Befehl liefert den Ausgabetyp. (Siehe auch Code-Tabelle OutputType)
D = Drucker
F = Datei (Achtung! Bei Druckvorschau wird ebenfalls F zurückgegeben.)
B = Preview

SYS(OUTNAME=<Drucker- oder Dateiname>)

Form

«SYS(OUTNAME=<Drucker- oder Dateiname>)»
Mit diesem Befehl kann im Script zur Laufzeit das Device verändert werden. Dabei kann als Device der volle UNC-Pfad zu einem Drucker angegeben werden.
So lassen sich Druckaufträge auch bei Verwendung des Servermode ServiceBus umleiten, ohne dass für jedes Device (Drucker) eine eigene Druckersteuerung im Opacc Studio erfasst sein muss. Die Verwendung von LPT2 und LPT3 kann damit komplett entfallen.
Wichtig! Im Falle von Preview hat dieser Befehl keine Wirkung.
Notiz
Notiz
Wenn der Drucker- oder Dateiname = leer, nul oder nul: ist, erfolgt keine Ausgabe.
Wenn SYS(OUTTYPE) = D ist, darf kein Filepfad sondern nur ein Devicepfad angegeben werden. Es führt zu einem Fehler, wenn in diesem Fall ein Filepfad angegeben wird.
Wenn SYS(OUTTYPE) = F ist, darf ein Filepfad angegeben werden.
Achtung
Achtung
Bei F-Scripts welche auch für die Druckvorschau verwendet werden, ist vor dem ändern des Device immer die Abfrage «zSYS(OUTTYPE)=D» zu verwenden.
Wird nämlich während der Druckvorschau (OUTTYPE=F) das Device auf einen Drucker umgelenkt, wird keine Vorschau angezeigt und der Output erfolgt auf dem Drucker. (Was im Falle der Druckvorschau natürlich unerwünscht ist.)
Beispiel:«zSYS(OUTTYPE)=D»«SYS(OUTNAME=\\SERVER\DRUCKER2)»

Beispiel

Drucker Nr. 90 hat als Device \\server\drucker1 hinterlegt. Ein Dokument wird via Drucker Nr. 90 (wichtig wegen der dort hinterlegten Druckersteuerung) verarbeitet. Der Output soll aber im F-Script zur Laufzeit auf das Device \\server\drucker2 ausgegeben werden.
# Ausgabetyp ausgeben
TYP:  «SYS(OUTTYPE)»
# Drucker- oder Dateiname ausgeben
NAME: «SYS(OUTNAME)»
# Drucker übersteuern aufgrund Device bei Druckersteuerung
«SYS(OUTNAME=«DRK-DEVICE(90)»)»
# Drucker übersteuern aufgrund direkter Eingabe eines Device (UNC-Pfad)
«SYS(OUTNAME=\\server\drucker2)»
# Neuen Drucker- oder Dateinamen ausgeben
NEW NAME: «SYS(OUTNAME)» 

SYS(PATHFF)

Form

«SYS(PATHFF)»
Dieser Befehl liefert den relativen Pfad ins F-Script-Verzeichnis. (..\FF)

SYS(PATHTX)

Form

«SYS(PATHTX)» 
Dieser Befehl liefert den Pfad ins Textverzeichnis gem. der Einstellung im OpaccOXAS Studio BC 98400.

SYS(RENAMEFILE)

Form

«SYS(RENAMEFILE file1,file2)»

«SYS(RENAMEFILE file1 file2)»

Typ

S (Funktion)
Mit diesem Befehl kann eine Datei umbenannt werden. Wird auf Indikator abgefragt, kann geprüft werden, ob das Umbenennen erfolgreich war oder nicht.
Als Delimiter kann ein Komma oder ein Leerschlag (Space) verwendet werden.

Beispiel

/
# Datei umbenennen:
«z~SYS(RENAMEFILE «SYS(PATHTX)»LS001.txt,LS001.bkp)\I» Fehler beim Umbenennen!
/

/
# Datei umbenennen:
«z~SYS(RENAMEFILE «SYS(PATHTX)»LS111.txt LS111.bkp)\I» Fehler beim Umbenennen!
/
Bei einem Rename darf nur beim ursprünglichen Dateinamen ein Pfad angegeben werden. Die umbenannte Datei bleibt immer im selben Verzeichnis bestehen.

SYS(RUN program)

Form

«SYS(RUN program)» 

Typ

S (Funktion)
Mit diesem Befehl kann ein externes Programm (ausserhalb von OpaccERP) gestartet werden. Nach Beenden des externen Programms, wird zum Ausgangspunkt innerhalb des F-Scripts zurückgekehrt.

Beispiel

/
# Kopieren aller Dateien von einem Verzeichnis in ein anderes.
«SYS(RUN robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)»
# Zurück vom externen Programm!
/
Externe Programme können mit einem direkten Programmaufruf gestartet werden. Dies entspricht im Prinzip der Eingabe unter "Start / Ausführen" in Windows. Kann ein Programm nicht (wie in obigem Beispiel) ausschliesslich durch die Eingabe des Namens gestartet werden, muss der Programmpfad vorangestellt werden.
Bei der Ausführung des Befehls wird die Formatierung der Ausgabe als Nummer und als Indikator unterstützt.
  • \N liefert den Exit-Code des Aufrufs. Grundsätzlich ist dies der Exit-Code des aufgerufenen Programms. Im unerwarteten Fehlerfall, wird -1 zurückgegeben.
  • \I liefert den ausgewerteten Exit-Code des Aufrufs. Ist der Aufruf erfolgreich (Exit-Code 0) verlaufen, wird der Wert 1 bzw. true zurückgegeben. In allen anderen Fällen wird von einem Fehler ausgegangen und es wird der Wert 0 bzw. false zurückgegeben.
Notiz
Notiz
Mit SYS(RUN.. wird der Command-Interpreter des Betriebssystems aufgrund der Client-Einstellungen geladen.
Falls ein Programm mit dem oben beschriebenen Befehl nicht direkt gestartet werden kann, empfehlen wir folgendes:
«SYS(RUN cmd /c robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)»
Dadurch wird der Command-Interpreter explizit über diesen Aufruf geladen.
Bei diesem Aufruf wird zusammen mit dem aufgerufenen Programm auch noch ein cmd.exe (Konsolen-Fenster) gestartet.
Soll die Anzeige des cmd.exe unterdrückt werden, kann der Aufruf folgendermassen erfolgen:
«SYS(RUNI cmd /c robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)»
Vorsicht beim Aufruf von Batch-Programmen. (*.bat)
Wird in einem Batch eine Pause eingebaut und der Aufruf erfolgt mit SYS(RUNI... so wird in der unterdrückten Konsole trotzdem auf eine Eingabe gewartet. In solchen Fällen sollte der Aufruf immer mit SYS(RUN... ausgeführt werden.
Werden externe Programme wie oben beschrieben mit «SYS(RUN cmd/c... gestartet, bleibt das F-Script so lange stehen, bis das externe Programm geschlossen wird. Dies ist nicht in allen Fällen gewünscht. Soll das F-Script direkt nach dem Aufruf des externen Programms weiterlaufen, kann das externe Programm mit "start" aufgerufen werden.
«SYS(RUN start /b robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)»
Bei diesem Aufruf wird zusammen mit dem aufgerufenen Programm auch noch ein cmd.exe (Konsolen-Fenster) gestartet, welches kurz "aufflackert". Soll die Anzeige des cmd.exe unterdrückt werden, kann der Aufruf folgendermassen erfolgen:
«SYS(RUNI start /b robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)»
Vorsicht beim Aufruf von Batch-Programmen. (*.bat)
Wird in einem Batch eine Pause eingebaut und der Aufruf erfolgt mit SYS(RUNI... so wird in der unterdrückten Konsole trotzdem auf eine Eingabe gewartet. In solchen Fällen sollte der Aufruf immer mit SYS(RUN... ausgeführt werden.
Wichtig
Wichtig
Wird im Servermode mit SYS(RUN cmd /c... ein Konsolen-Fenster geöffnet, sieht die Eingabezeile wie folgt aus: \\Servername\Freigabename\Insyde\sym>
Wird in dieser Situation in einem F-Script folgender Befehl ausgeführt: «SYS(RUN cmd /c move ..\tx\Textdatei.txt ..\tx\test)»
Dann funktioniert das Kopieren nicht. Die Befehle move und del haben in dieser Konstellation leider einen Fehler, welcher auf das Betriebssystem zurückzuführen ist und nicht mit OpaccERP zusammenhängt. (Und deshalb auch nicht durch uns korrigiert werden kann.)
Was kann man tun?
Diese Befehle nur mit der vollen Pfadangabe ausführen.
Beispiel:
«SYS(RUN cmd /c move \\Servername\Verzeichnis\Unterverzeichnis\Textdatei.txt \\Servername\Verzeichnis\Unterverzeichnis_2\test)»

SYS(SECONDS)

Form

«SYS(SECONDS)» 

Typ

S (Funktion)
Dieser Befehl liefert die aktuelle Systemzeit in Sekunden.

Ausgabe

36945
Die aktuelle Systemzeit (umgerechnet aus den 36945 Sekunden ab Mitternacht) ist 10 Uhr : 15 Minuten : 45 Sekunden.

SYS(SESSION)

Form

«SYS(SESSION)» 

Typ

S (Funktion)
Dieser Befehl liefert die Eindeutige BIZ-Session-Nr. innerhalb eines BIZ-Prozesses.
Diese Session-Nr. wird innerhalb eines BIZ-Prozesses z.B. für das Erstellen von Files (Druckvorschau) verwendet und kann mit dem Befehl SYS(SESSION) ausgegeben werden.
Beachten Sie, dass gerade bei aktivem Servermode diese Session-Nr. nicht für die eindeutige Identifikation einer OpaccERP Anmeldung verwendet werden kann.
Achtung! Für das Erstellen von eindeutigen File- und/oder Verzeichnisnamen ist dieser Befehl nicht geeignet und sollte deshalb auch nicht dafür verwendet werden!

Beispiel

# Ausgeben der BIZ-Session Nr.
BIZ-Session: «SYS(SESSION)»

Ausgabe:

BIZ-Session: 7

SYS(START_SESSION)

Form

«SYS(START_SESSION)» 

Typ

S (Funktion)
Dieser Befehl liefert die BIZ-Session-Nr. innerhalb der ein F-Script gestartet wird. Werden aus dem F-Script heraus via System_RunScript weitere F-Scripts gestartet, so wird die "Start-Session-Nr." an diese BIZ-Sessions weitergegeben und steht in den jeweiligen F-Scripts zur Verfügung.
Beispiel für die Anwendung im Servermode-Umfeld:
script1.ff wird gestartet.
Session: SYS(SESSION) - 100
Start-Session: SYS(START_SESSION) - 100
Sytem_RunScript: script2.ff
script2.ff wird aus script1.ff heraus gestartet.
Session: SYS(SESSION) - 38
Start-Session: SYS(START_SESSION) - 100
Sytem_RunScript: script3.ff
script3.ff wird aus script2.ff heraus gestartet.
Session: SYS(SESSION) - 30
Start-Session: SYS(START_SESSION) - 100
In allen drei F-Scripts kann somit auf die "Start-Session-Nr." zugegriffen werden. Damit lassen sich z.B. Anforderungen bezüglich dem Identifizieren von Files abdecken, wenn die "Start-Session-Nr." Bestandteil des Filenamens ist.
Notiz
Notiz
Beachten Sie, dass es keine feste Beziehung zwischen dem OpaccERP Client und einer BIZ-Session gibt. Jeder Request (z.B. System_RunScript) welcher von einem OpaccERP Client an den ServiceBus geschickt wird, wird mit grösster Wahrscheinlichkeit von einer anderen BIZ-Instanz (andere BIZ-Session) abgearbeitet.

Beispiel

# Ausgeben der BIZ-Start-Session
BIZ-Start-Session: «SYS(START_SESSION)»

Ausgabe:

BIZ-Start_Session: 17

SYS(STACK_LEVEL)

Form

«SYS(STACK_LEVEL)»
Dieser Befehl liefert den aktuellen Scriptlevel zurück. Damit können Sie prüfen, auf welchem Level (Verschachtelung von Scripts/Subroutinen) sich das F-Script aktuell befindet.
Mit Hilfe dieses Befehls können Sie vermeiden, mehr als acht verschachtelte Aufrufe zu implementieren. Der Befehl ist darüber hinaus bei der Analyse von MaxLevel/GoSub Fehlern hilfreich.

SYS(STOP)

Form

«SYS(STOP)»
Mit diesem Befehl wird die Script-Verarbeitung abgebrochen und das F-Script sofort verlassen.

SYS(TIME)

Form

# Ohne Angabe eines Formats
Ohne Format: «SYS(TIME)»
# Mit Angabe eines Formats
Mit Format: «SYS(TIME)\N5,:00»

Typ

S (Funktion)
Deser Befehl liefert die aktuelle Systemzeit in Stunden und Minuten.

Ausgabe

Ohne Format: 10.25
Mit Format: 10:25

SYS(USEDMEM)

Form

«SYS(USEDMEM)»
Dieser Befehl liefert die "Private Bytes" des BIZ-Prozesses.

SYS(USERCOUNT) - Achtung! Unter OpaccERP ohne Funktion.

Form

«SYS(USERCOUNT)»
Dieser Befehl liefert die Anzahl der angemeldeten Benutzer.

SYS(WAIT n)

Form

«SYS(WAIT n)» 

Typ

S (Funktion)
Mit diesem Befehl kann eine Verarbeitung für n-Sekunden unterbrochen werden. Oft wird diese Funktion genutzt, um innerhalb von Schleifen eine bestimmte Anzahl Sekunden zu warten, bevor die Schleife erneut durchlaufen wird.
Um sehr kurze Wartezeiten implementieren zu können, ist es auch möglich, mit Millisekunden zu arbeiten.

Beispiel

«SYS(WAIT 5)»
# Die Verarbeitung wird für 5 Sekunden angehalten.

«SYS(WAIT 0.005)»
# Die Verarbeitung wird für 5 Millisekunden angehalten.